package cn.tianjindong.blog_portal.service;

import java.util.List;

import cn.tianjindong.blog.common.pojo.PageView;
import cn.tianjindong.blog.pojo.BlogArticle;
import cn.tianjindong.blog.pojo.BlogArticleComment;

/**
 * 文章相关操作Service层
 * @author 田 金 东
 *
 */
public interface ArticleService {
	/**
	 * 通过Id和文章对应  分类的alias查询文章(文章id和文章分类的别名都必须匹配)
	 * 使用redis缓存，来解决文章访问次数的问题，缓存key的格式："ARTICLE"+文章ID+JESSIONID
	 * @param id
	 * @param alias
	 * @return
	 */
	BlogArticle getArticleByIdAndAlias(Long id,String alias,String jsessionid);

	/**
	 * 通过文章Id查询文章
	 * 使用redis缓存，来解决文章访问次数的问题，缓存key的格式："ARTICLE"+文章ID+JESSIONID
	 * @param id
	 * @return
	 */
	BlogArticle getArticleById(Long id,String jsessionid);

	/**
	 * 根据文章的访问次数排序，然后获取指定个数的文章对象（不包括文章内容）
	 * @param countItem
	 * @return
	 */
	List<BlogArticle> getArticleListOrderByVisitNum(Integer countItem);

	/**
	 * 文章的分页查询
	 * @param currentPage
	 * @param countItem
	 * @return
	 */
	List<BlogArticle> getArticlePageView(Integer currentPage, Integer countItem);

	/**
	 * 查询个人收藏文章的分页查询，按照收藏时间逆序排列
	 * @param id
	 * @param currentPage 当前是第几页
	 * @param countItem 每页显示条数
	 * @return
	 */
	PageView<BlogArticle> getCollectionArticlePageView(Long userId,Integer currentPage, Integer countItem);

	/**
	 * 获取与标签相关联的所有文章的分页查询对象
	 * @param tagId
	 * @return
	 */
	PageView<BlogArticle> getArticlePageViewByTagId(Long tagId,Integer currentPage, Integer countItem);
	
}
